A data communication network infrastructure, such as the Internet, can be composed of a large number of network nodes that are connected among one another. Network nodes refer to network components (e.g., clients, servers, microservices, virtual machines, serverless code instances, IoT devices, etc.) that communicate with one another according to predetermined protocols by means of wired or wireless communication links. The data communication network provides services to users according to requirements of the services, such as quality of service (QoS) commitments. Different types of services with different QoS requirements may be provided by the data communication network via different service links formed by the network nodes deployed in the network.
In a data communication network, resources for services are allocated and optimized according to a current state of the network. With arrivals of new service demands, there is often a need to migrate existing services to different sets of configurations, such as different service routes, resource allocations, or the like. In such circumstances, it is desirable to migrate the existing services smoothly such that the service disruption is minimized. Further, when a network link failure occurs, there is a need to provide restoration schemes to services that are impacted by the network link failure. For a large data communication network involving a large number of network nodes, the computation complexity to determine the restoration schemes can be high, and a computationally efficient method to provide restoration schemes in case of a network link failure is desired. It is also desired that a minimal number of service links is used to satisfy the service demands in the data communication network so as to reduce the cost of operating the network.